<?php
class EmpresasController extends AppController {

	var $name = 'Empresas';
    

	function index() {
		$this->Empresa->recursive = 0;
		$this->set('empresas', $this->paginate());
	}
	function empresa($empresa_id=null) {
		if($empresa_id == null){
			$empresa=$this->Empresa->getByEntidade(2);
		}
		else $empresa = $this->Empresa->findById($empresa_id);
		
		$this->set('empresa',$empresa);
	}	
    function registro(){
        
		App::import('Model','Cargo');
		App::import('Model','EmpresasEntidade');
		$cargo = new Cargo();
		$empresasentidade = new EmpresasEntidade();
		
		if(!empty($this->data)){
			//Primeiro Registramos a empresa
			$this->Empresa->create();
			$imagem=array($this->data['Empresa']['logo']);
			$fileOk = $this->uploadFiles('img/uploads/empresas/logos',$imagem);
			$this->data['Empresa']['logo_url']=$fileOk['filename'][0];
			
			if($this->Empresa->save($this->data)){
				
				//manipulamos o cargo primeiro. Nao podem haver cargos repetidos
				$cargos = $cargo->findByName($this->data['Empresa']['Cargo']['name']);
				
				if($cargos ==false){
					$cargo->create();
					$cargo_data = array('Cargo'=>$this->data['Empresa']['Cargo']);
					if($cargo->save($cargo_data))$cargo_id = $cargo->getID();
				}
				else
					$cargo_id = $cargos['Cargo']['id'];
				
				$empresa_id = $this->Empresa->getID();
				$entidade = $this->Empresa->Entidade->find('first',array('conditions'=>array('user_id'=>$this->Session->read('Auth.User.id'))));
				$empresa_entidade = array('EmpresasEntidade'=>array('empresa_id'=>$empresa_id,'entidade_id'=>$entidade['Entidade']['id'],'cargo_id'=>$cargo_id));
				$empresasentidade->create();
				if($empresasentidade->save($empresa_entidade)){
					$this->Session->setFlash(__('Empresa registrada com sucesso', true));
					$this->redirect(array('action' => 'empresa',$this->Empresa->getID()));	
				}
				
				
			}
		}
		
		$user_id = $this->Session->read('Auth.User.id');
		$cargos = $cargo->find('list');
		$entidade = $this->Empresa->Entidade->find('first',array('conditions'=>array('user_id'=>$user_id)));
		$provincias = $this->Empresa->Provincia->find('list');
		$distritos = $this->Empresa->Distrito->find('list');
		
		$this->set('entidade',$entidade);
		$this->set(compact('distritos', 'provincias','cargos'));
    }

	function adicionar_vaga(){
		
	}
	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid empresa', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('empresa', $this->Empresa->read(null, $id));
		
	}

	function add() {
		if (!empty($this->data)) {
			$this->Empresa->create();
			if ($this->Empresa->save($this->data)) {
				$this->Session->setFlash(__('The empresa has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The empresa could not be saved. Please, try again.', true));
			}
		}
		$distritos = $this->Empresa->Distrito->find('list');
		$provincias = $this->Empresa->Provincium->find('list');
		$areas = $this->Empresa->Area->find('list');
		$distritos = $this->Empresa->Distrito->find('list');
		$entidades = $this->Empresa->Entidade->find('list');
		$this->set(compact('distritos', 'provincias', 'areas', 'distritos', 'entidades'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid empresa', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Empresa->save($this->data)) {
				$this->Session->setFlash(__('The empresa has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The empresa could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Empresa->read(null, $id);
		}
		$distritos = $this->Empresa->Distrito->find('list');
		$provincias = $this->Empresa->Provincium->find('list');
		$areas = $this->Empresa->Area->find('list');
		$distritos = $this->Empresa->Distrito->find('list');
		$entidades = $this->Empresa->Entidade->find('list');
		$this->set(compact('distritos', 'provincias', 'areas', 'distritos', 'entidades'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for empresa', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Empresa->delete($id)) {
			$this->Session->setFlash(__('Empresa deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Empresa was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
    
        function beforeFilter(){
        Security::setHash('md5');
        $this->Auth->allow('login','registro','confirmacao');
        $this->Auth->loginAction = array('controller' => 'candidatos', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'pages', 'action' => 'home');
        $this->Auth->loginRedirect = array('controller' => 'candidatos', 'action' => 'index');
        $this->Auth->loginError = "Dados Incorrectos";
        $this->Auth->actionPath = 'controllers/';
       // $this->Auth->fields = array('username' => 'username', 'password' => 'senha');


    }
    
    function ajax_busca_cargos(){
                
		App::import('Model','Cargo');
		App::import('Model','EmpresasEntidade');
		$cargo = new Cargo();
		$empresasentidade = new EmpresasEntidade();
        Configure::write('debug', 0);
        $this->layout = 'ajax';
$cargos = $cargo->find('all', array('conditions' => array('Cargo.name LIKE ' => '%'.$this->params['url']['term'] . '%'), 'fields' => array('name')));
$cargosArray = Set::extract($cargos, '{n}.Cargo');

echo $this->params['url']['callback'].'('.json_encode($cargosArray).')';
    }
}
